Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Added Super Street Fighter II Turbo Hyper Fighting SNES game support #22

Open
wants to merge 10 commits into
base: master
Choose a base branch
from

Conversation

dcelix
Copy link
Contributor

@dcelix dcelix commented May 5, 2017

Added new SNES game: Super Street Fighter II Turbo Hyper Fighting, allowing character selection and different reward strategies.

@nadavbh12
Copy link
Owner

Nice work!
I see that each time you start a game you play against a random character/level.
Did you find a way to control this? It's important that the standard settings will be consistent.

@dcelix
Copy link
Contributor Author

dcelix commented May 9, 2017

I'm afraid that we didn't find a way to start always playing against the same opponent. It's the way the game behaves across resets. We dont know if the same behaviour is present in all the sf2 versions.

In this case, the game behaviour will change slightly from battle to battle due to some randomness implemented in it (e.g. dizzy state duration).

dcelix added 10 commits May 9, 2017 23:27
Added Street Fighter II Turbo Hyper Fighting to the supported roms
Reaching zero time does not mean terminal state.
A single fight might reach zero time, meaning that
the next round should start.
The terminal state, should only be reached by
opponent wins.
When the player wins two matches, he will start a fight
with the next rival. This is not terminal state as with
each rival the difficulty will be increased and it is
interesting for the agent to able to reach these states.
Variable kept as a comment for future reference.
@dcelix
Copy link
Contributor Author

dcelix commented Dec 3, 2017

Hi, it's been a while since the last time I could review this. The problem we found with this game is that every time the game restarts, it starts against a different character. I've been trying to find the memory position where the character is determined and I think I was somehow close to find the actual memory position. But then I realized that I have no way to force the character selection without introducing deeper (and more complex) changes. That is, the restart process just "replays" a certain amount of actions that leads the game to a certain state, and in this process I have no way to modify the memory contents.
Please, correct me if I'm wrong and bring some light to the solution as we would like to see these changes merged :)

@nadavbh12
Copy link
Owner

It's likely that the opponent/level is determined by counting NOOPs in the different menus.
In MK, we simply allowed to set an int which determines the number of NOOPS to insert, that way you can experiment with different NOOPs to get different behavior while maintaining reproducibility.

Try experimenting with this. Randomness in those days was pretty crude.

@dcelix
Copy link
Contributor Author

dcelix commented Dec 3, 2017

Cool, thanks for the tip!! I will get back yo you with the results :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants